After completing this lesson, you’ll be able to:
FME Flow security and permissions work together to restrict and allow access to FME Flow items. It's important to ensure users have access to the items they're supposed to and oftentimes only the admin account is given access to all items on an FME Flow instance.
When you create an item, you have full permissions for that item, however that does not mean your colleague can access it when they need to. Depending on the permissions set up for each user to access FME Flow items, the easiest way for FME Flow users to collaborate and access the same content is by sharing it across users and roles.
Generally, sharing content on FME Flow follows one of these methods:
When you choose the Workspaces menu option in the FME Flow web interface, you will see a list of the repositories you have access to.
If you are the owner of a repository, then you can click the button to Share with Others:
Clicking this button opens a pop-up dialogue where you can select a user and choose the level of permission that you wish to give them:
Users and roles also impact FME Flow security. Roles are analogous to a group of users. When sharing a component, the "user" field can be an individual user or applied to a particular role. For example, you can give anyone in the fmeuser role the ability to run workspaces in a repository.
Security is a critical capability. As an author, you might publish a workspace for multiple users within FME Flow. However, they can only use the workspace if they have access.
The Sharing Options dialog allows you to give others access to your workspace without needing the advanced User Management permissions.
Sharing a repository is an excellent option for sharing workspaces with other users who also have access to FME Flow, but what if you want to allow anyone to submit a job without needing an account on FME Flow? Or what if you'd like to control the input parameters available to a user to submit a job? Or perhaps you'd like to allow another user to trigger your automation without letting them edit the automation?
You can accomplish all of these using FME Flow Apps. You can create a Workspace App by clicking on Flow Apps from the FME Flow Menu:
To manage FME Flow Apps, click on Manage Workspace Apps. From here, you can manage all your existing apps and create new ones.
When creating a new Workspace App, you select which workspace you would like your app to run and can also set an expiration date to control how long the app will be accessible.
Next, you can select which Published Parameters and default values you would like to display for your end-users to set when they use your Workspace App. If you deselect Show in App for a parameter, the user running the app will not be able to modify it, extending your control over how other users may run your workspace.
After setting up your app and clicking OK, FME Flow will generate a Workspace App URL. Anyone with that URL can run the app you created but may have to log into FME Flow first if Require Authentication was selected.
The FME Flow Workspace App link will open a simplified Run Workspace page:
You can also create an FME Flow Workspace App from the Run Workspace page for any workspace by clicking on Workspace Actions > Create Workspace App or from under the Advanced parameters section. This handy shortcut will directly open the Create Workspace FME Flow App page and automatically select the Workspace for you.
Automation Apps and Gallery Apps are other types of FME Flow Apps that allow for easy sharing of FME Flow content.
Automation Apps allow automations to be triggered via the App interface while Gallery Apps act as landing pages for several Flow Apps and URLs For more information, see Getting Started with Gallery Apps and Getting Started with Automation Apps.
Webhooks allow an application to run a workspace programmatically. You can create a Webhook URL for any workspace from the Run Workspace page. Webhooks help you build web applications that access FME Flow services because you can copy the HTTP request and embed it on your website or a 3rd party application. You could also embed the URL into an email, or paste the URL directly into a web browser.
For more information on Webhooks, see Working with FME and Webhooks.
In more advanced use cases, you can also share the results of workspaces with users who don't have an FME Flow account using the FME Flow REST API. You can make an API call to FME Flow to run a workspace and include the results in your external applications.
The webhook URL can use the FME Flow services (Data Download, Data Streaming), whereas the REST API can only submit jobs using the REST service, which acts similarly to the Job Submitter service. You can see demos using the FME Flow REST API or read the documentation for more information.